نکاتی در مورد پروسیجرها
نوشته شده توسط : امیر

نکاتی در مورد پروسیجرها

 

توجه داشته باشيد که در ابتدای تعريف توابع و روالها می توانيم از Private يا Public نيز استفاده کنيم و تمام سطوحی که برای تعريف متغيرها گفته شد (خصوصاً سطح فرم و سطح ماژول) ، در اينجا نيز عيناً کاربرد دارند. (پيش فرض در اينجا هم Private است).

به عنوان مثال اگر بخواهيم تابعی به نام Square ايجاد نماييم که هر عددی را دريافت کرد، مربع آن را برگرداند، کافی است چنين بنويسيم (مثلاً به صورت Public در يک ماژول) :

Public Function Square (I As Integer) As Integer

           Square = I*I

End Function

ملاحظه می کنيد که در اينصورت اگر هر جايی از برنامه نام تابع را به همراه يک مقدار عددی Integer به عنوان پارامتر آن ذکر کنيم، مقدار عددی مذکور به متغير I داخل تابع منتقل شده و عمل I*I روی آن انجام می گيرد و از آنجا که گفتيم خرجی توابع نام آنها هستند، خروجی (يعنی مقدار I*I را) را به نام تابع جايگزين کرديم (يعنی Square = I*I) . حال مثلاً اگر در جايی از برنامه دستور b = Square (5) را وارد کنيم، مقدار متغير b برابر 25 خواهد شد.

توجه داريم که اگر تابع بيش از يک پارامتر ورودی داشت، بايد نام آنها با کاما (,) از هم جدا کنيم که در اينصورت در هنگام فراخوانی بايد به تعداد پارامترها، آرگومان قرار دهيم که به ترتيب در متغير مربوط جايگزين (وارد) می شود. مثلاً اگر بخواهيم تابعی به نام Multiple ايجاد کنيم که حاصلضرب دو پارامتر ورودی اول را با پارامتر ورودی سوم جمع کند و نتيجه را برگرداند، کافی است بنويسيم:

Private Function Multiple (a, b, c As Integer) As Integer

     Multiple = (a*b) +c

End Function

که در اينصورت دستورات زير در محلی از پروژه (که البته دسترسی Private به تابع مذکور داشته باشد)، مقدار 17 را در Text Box به نام txtResult قرار می دهد:

I = 3

bs = 5

g = 2

txtResult.Text = Multiple (I, bs, g)

توجه داريم که مقادير استفاده شده به عنوان آرگومانهای تابع بايد با متغيرهای به کار رفته در پارامترهای تعريف تابع از لحاظ نوع داده، يکسان باشند.حال به عنوان مثالی برای روالها فرض کنيد بخواهيم روالی به نام TF ايجاد کنيم که دو عدد را دريافت کند، بررسی کند که اگر اين دو عدد برابر بودند، جواب True  و همچنين حاصلضرب آن دو را برگرداند. برای اين منظور اگر مثلاً در يک ماژول تعريف کنيم:

Public Sub TF (x, y As Integer, T as Boolean, M as Integer)

     IF x = y then

          T = True

     Else

           T = False

     End IF

     M = x*y

End Sub

می توان در جايی از پروژه، روال مذکور را فراخوانی نمود، فراخوانی روالها توسط دستور Call صورت می گيرد، مثلاً اگر در جايی از پروژه، روال فوق را به صورت زير فراخوانی نماييم:

a = InputBox (“Please Enter a Number”)

Call TF (a, 15, s, p)

در صورتی که متغيرهای a و s و p تعريف شده باشند آرگومان a به پارامتر x از روال، آرگومان 15 به پارامتر y از روال، آرگومان s به پارامتر T از روال و آرگومان p به پارامترM از روال منصوب می شود. دستور InputBox يک جعبه محاوره‌ای برای کاربر نشان می دهد که پيغامی را (در اينجا پيغام Please Enter a Number) شامل می شود و در يک جعبه متن خاص، مقداری را از کاربر مطالبه می کند که پس از وارد کردن توسط کاربر مقدار وارد شده را برمی گرداند (و در اينجا در متغير a جايگزين می کند). حال اگر کاربر مقدار 15 را وارد کند، مقدار متغير s (که بايد Boolean تعريف شده باشد) برابر True و در غير اينصورت مقدار False را شامل می شود و در هر صورت متغير p نيز حاصلضرب a و 15 را در خود شامل می شود.

تأکيد می کنيم که نوع داده آرگومانها و پارامترهای تعريف لزوماً بايد به ترتيب متناسب باشد که در غير اينصورت VB به ما خطا صادر می کند.




:: بازدید از این مطلب : 344
|
امتیاز مطلب : 23
|
تعداد امتیازدهندگان : 9
|
مجموع امتیاز : 9
تاریخ انتشار : 3 دی 1389 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: